#ifndef __BINARYTREE_H_
#define __BINARYTREE_H_
#define ElementType int

struct BinaryTreeNode;
typedef struct BinaryTreeNode BTNode;

BTNode *CreateBTNode(ElementType element);


struct BinarySortTree;



typedef struct BinarySortTree BSTree;
BSTree* InitBSTree();
void InsertElement(BSTree *tree,ElementType element);
void TravelPrev(BSTree *tree);
void TravelMid(BSTree *tree);
void TravelPost(BSTree *tree);
BTNode *FindByElement(BSTree *tree,ElementType element);
void RemoveByElement(BSTree *tree, ElementType element);

BTNode *GetTreeRoot(BSTree *tree);
void *InsertTree(BSTree *tree,ElementType element);
void* DeleteTree(BSTree *tree,ElementType element);

#endif